home *** CD-ROM | disk | FTP | other *** search
- Path: python.microcom.com!gator!spellman
- From: spellman@microcom.com (Roger Spellman)
- Newsgroups: comp.sys.m68k
- Subject: Losing Data in HDLC Mode on 68360
- Date: 22 Jan 1996 21:03:07 GMT
- Organization: Microcom, Inc.
- Distribution: world
- Message-ID: <4e0u2b$t5j@python.microcom.com>
- Reply-To: spellman@microcom.com
- NNTP-Posting-Host: gator.microcom.com
- Keywords: 68360 QUICC SCC DPLL HDLC NRZI
-
- I am having trouble with the 68360 QUICC's SCC in HDLC mode.
- Here it the problem.
-
- The Company I work for has a product in which a "Controller Card" has
- to talk to several "Slave Cards." To do this, they use an HDLC protocol
- over a shared bus at 9600pbs. Since it is a shared bus, everything is
- half-duplex, where the controller sends a request addressed to a
- particular slave, and only that slave responds.
-
- The sequence is as follows:
-
- 1) Controller turns on Transmitter
- 2) Controller sends HDLC frame addressed to a particular Slave
- 3) Controller turns off Transmitter
- 4) Controller turns on Receiver
- 5) The Slave waits 1.5ms, and sends the HDLC framed reply. The reply
- may consist of one to four frames. The first frame is preceeded by
- two HDLC flags, to give the controller a chance to sync up with the
- data. When done transmitting, the Slave turns off its transmitter.
- 6) When the Controller gets the last frame, it turns off its Receiver,
- turns on the Transmitter, and is ready to begin again.
-
-
- The current product uses a Zylogics chip in both the controller and the
- slave cards to deframe the HDLC traffic. The product has been on the
- market for several years, without any HDLC problems. The next Rev of
- the HW was modified to use the 68360 QUICC (so that they can add ethernet,
- and other stuff).
-
- The problem is: The new controller sometimes fails when reading the first
- HDLC frame from the shared bus. The data stream includes two HDLC flags,
- and is running NRZI-Mark, and we are using the DPPL.
-
- We believe that the problem has something to do with the 68360 having
- difficulty syncing up with the incoming data stream. This is based on a
- change to the 68360 User's Manual.
-
- In Rev 1 of the 68360 User's Manual, a new table and a footnote are added
- to page 7-138. (I know that it is new, because of the change bars, and
- because it is not in the older Rev's of the manual that we have). The
- text states "To prevent the DPLL from locking on the wrong edges and
- to provide fast synchronization, the DPLL should generally receive a
- preamble prior to the data." The table lists the desired preambles
- (8 bits) for every Decoding Method. The Footnote states, "The QUICC
- receiver require[s] the above preamble".
-
- The fact that this footnote is added to this Rev of the manual tells me
- that this was a "bug" found late in the 68360 development stage, which
- required them to add this to the manual. Tech Support at Motorola tells
- us that this is not true, and that we should be able to run without the
- preamble. As I said, we only fail once in a while (e.g. 2% of the time).
- But, that is often enough to cause use problems.
-
- Is there something we can do to solve this problem?
-
- Let me state what we've tries so far ...
-
- One possible solution is to modify the slave cards to send more flags.
- We've done this on our new releases of the slave cards, and that works
- fine. The problem is that we have a huge installed base of PROM-based
- slave cards, and we cannot upgrade the SW in any of them. So, we really
- need to solve this in the controller.
-
- Another approach I tried is to have the QUICC do Internal Timing, rather
- than trying to recover the clock from the data stream. To do this, I set
- RDCR to 00, which sets the DPLL clock rate to 1x clock mode. I thought
- that this would essentially "turn off" the DPLL, and hence get rid of
- the preamble requirement. This seemed to improve the situation a little,
- in that we stopped losing the start of frames. But, we began seeing a new
- problem: we got DPLL errors on the last frame of some multi-frame sequences.
- (I guess that I really did not turn off the DPLL -- Is there a way to turn
- it off?). One could possibly blame this on the different clock speeds on
- the Controller and Slave. But, since the total number of bytes sent is
- less than 200 bytes, and since we are running (crawling) at 9600 bps,
- I find that hard to believe.
-
- I'd really appreciate hearing from anyone with any suggestionos or
- solutions.
-
- Thanks a lot.
-
-
-
-
-